package Offer;

/**
 * 剪绳子II
 * 根据推论尽可能将绳子分成3，取模
 * @author 是阿秋啊
 * @date 2022/08/26 18:57
 **/
public class Num14II {
    public int cuttingRope(int n) {
        if(n <= 3) return n - 1;
        long sum = 1;
        while(n > 4){
            // 这里不是大于等于三是因为，当数值大于取模数后，再在走出循环后做除法是错误的
            sum = (sum * 3) % 1000000007;
            n -= 3;
        }
        return (int)((sum * n) % 1000000007);
    }
}